import time
from typing import List, Optional

from android.net import Uri
from airscript.intent import Intent
from ascript.android import action
from ascript.android.node import Selector
from ascript.android.system import R

from ascript.android import plug
plug.load("ld:1.2.0") # 这里是版本号

from ld.android import *
from ld.common.CommonClass import CommonResult



def 返回主页(ld: 零动框架):
    # 返回首页逻辑
    ld.点击_元素(["搜索返回按钮"])
    time.sleep(1)

def 获取下拉词(ld: 零动框架) -> Optional[List[str]]:
    """
    获取下拉词
    :param ld: 灵动主体
    :return: 下拉词列表
    """
    ld.元素_等待(["下拉词"], 5).执行()
    下拉词: List[CommonResult] = ld.获取_全部元素("下拉词")
    result = []
    for i in 下拉词:
        result.append(i.target.text)
    return result


def 输入关键词(keyword: str):
    Selector(2).id("com.smile.gifmaker:id/editor").input(keyword).find()

def 点击搜索按钮并输入关键词(ld: 零动框架, keyword: str):
    """
    点击搜索框并输入关键词
    :param keyword: 搜索的关键词
    """
    ld.点击_元素(["搜索按钮"], 5)
    ld.元素_等待(["搜索框"], 5).执行_方法(lambda :输入关键词(keyword)).执行()


def 流程获取下拉词操作(keyword: str, ld: 零动框架) -> Optional[List[str]]:
    """
    流程获取下拉词操作
    :param keyword: 搜索的下拉词
    :param ld: 灵动主体
    :return: 下拉词列表
    """
    # 打开抖音的搜索界面
    time.sleep(1)  # 等待页面加载

    # 搜索关键词
    点击搜索按钮并输入关键词(ld, keyword=keyword)

    # 获取下拉词
    下拉词 = 获取下拉词(ld)

    # 点击搜索返回按钮
    返回主页(ld)
    log.info(f'下拉词：{下拉词}')
    return 下拉词


def 打印设备基本信息(ld: 零动框架):
    """
    打印设备基本信息
    :return:
    """
    # print(ld.获取_设备ID()) # 00db2266-0e06-4b07-b837-b6f3b7bcf65b
    print(ld.获取_设备名称()) # HUAWEIHMA-AL00
    print(ld.获取_设备屏幕信息()) # {'width': 1080, 'height': 2244, 'density': 3.0}
    # print(ld.获取_设备品牌())
    # print(ld.获取_设备型号())
    print(ld.获取_设备SDK()) # 29
    print(ld.获取_设备IP())